<?php
header("Content-Type: text/html; charset=utf-8");
/**
 * user.php 用户管理
 * ----------------------------------------------------------------
 * OldCMS,site:http://www.oldcms.com
 */
if (!defined('IN_OLDCMS')) {
    die('Access Denied');
}

if ($user->userId <= 0) {
    ShowError('未登录或已超时', $url['login'], '重新登录');
}

$act = Val('act', 'GET');

switch ($act) {
    case 'invite':
        $inviteSum = 5;
        $db = DBConnect();
        $tbInviteReg = $db->tbPrefix . 'invite_reg';
        $invites = $db->Dataset("SELECT id,inviteKey as code,isWooyun,addTime FROM {$tbInviteReg} WHERE userId='" . $user->userId . "' AND isUsed=0 ORDER BY id DESC");

        $codesWooyun = array();
        $codesOther = array();
        foreach ($invites as $k => $v) {
            if ($v['isWooyun'] == 1) {
                $codesWooyun[] = $v;
            } else {
                $codesOther[] = $v;
            }
        }

        $smarty = InitSmarty();
        $smarty->assign('codesWooyun', $codesWooyun);
        $smarty->assign('codesOther', $codesOther);
        $smarty->assign('do', $do);
//    $smarty->assign('key', $key);
        $smarty->assign('show', $show);
        $smarty->assign('url', $url);
        $smarty->display('user_invite.html');
        exit;
        echo "可使用的邀请码(", count($invites), ")：<br/>\n";
        if (count($invites) > 0) {
            foreach ($invites as $key => $value) {
                echo $value['inviteKey'], "<br/>\n";
            }
        }
        echo "<br/><br/>\n", '<input type="button" onclick="location.href=\'' . (URL_ROOT . '/index.php?do=user&act=createinvite') . '\'" value="生成新的邀请码" />';
        break;
    case 'createinvite':
        if ($user->adminLevel <= 0) {
            ShowError('没有操作权限', URL_ROOT . '/index.php?do=user&act=invite');
        }
        $inviteSum = 100;
        $isWooyun = Val('isWooyun', 'GET', 1) == 1 ? 1 : 0;
        //判断是否可以生成
        $db = DBConnect();
        $tbInviteReg = $db->tbPrefix . 'invite_reg';
        $inviteCount = $db->FirstValue("SELECT COUNT(*) FROM {$tbInviteReg} WHERE userId='" . $user->userId . "' AND isUsed=0");
        if ($inviteCount >= $inviteSum) {
            ShowError('最多可生成' . $inviteSum . '条未使用的邀请链接', URL_ROOT . '/index.php?do=user&act=invite');
        }
        $inviteKey = md5('oc_' . $user->userId . time() . rand(100000, 999999));
        $sqlValue = array(
            'userId' => $user->userId,
            'inviteKey' => $inviteKey,
            'isWooyun' => $isWooyun,
            'addTime' => time()
        );
        if ($db->AutoExecute($tbInviteReg, $sqlValue)) {
            ShowSuccess('操作成功', URL_ROOT . '/index.php?do=user&act=invite');
        } else {
            ShowError('操作失败', URL_ROOT . '/index.php?do=user&act=invite');
        }
        break;
    //用户个人设置
    case 'seting':
        $db = DBConnect();
        $userInfo = $db->FirstRow("SELECT * FROM " . Tb('user') . " WHERE id='" . $user->userId . "'");
        $phone = $userInfo['phone'];
        $email = $userInfo['email'];
        $dingding = $userInfo['dingding'] ?? '';
        if ($userInfo['message'] == '') {
            $emsg = '0';
            $pmsg = '0';
            $dmsg = '0';
        } else {
            $msg = explode("|", $userInfo['message']);
            $emsg = $msg[0];
            $pmsg = $msg[1];
            $dmsg = $msg[2];
        }

        if ($emsg == '1') {
            $input1 = "<input name='emsg' type='checkbox' class='checon' checked='checked'>";
        } else {
            $input1 = "<input name='emsg' type='checkbox' class='checon'>";
        }

        if ($pmsg == '1') {
            $input2 = "<input name='pmsg' type='checkbox' class='checon' checked='checked'>";
        } else {
            $input2 = "<input name='pmsg' type='checkbox' class='checon'>";
        }

        if ($dmsg == '1') {
            $input3 = "<input name='dmsg' type='checkbox' class='checon' checked='checked'>";
        } else {
            $input3 = "<input name='dmsg' type='checkbox' class='checon'>";
        }


        include 'common.php';
        $smarty = InitSmarty();

        $smarty->assign('do', $do);
        $smarty->assign('show', $show);
        $smarty->assign('url', $url);
        $smarty->assign('projects', $projects);
        $smarty->assign('modules', $modules);

        $smarty->assign('input1', $input1);
        $smarty->assign('input2', $input2);
        $smarty->assign('input3', $input3);

        $smarty->assign('dingding', $dingding);
        $smarty->assign('email', $email);
        $smarty->assign('phone', $phone);
        $smarty->assign('emsg', $emsg);
        $smarty->assign('pmsg', $pmsg);
        $smarty->display('user_seting.html');
        exit;
        break;
    case 'submit':
        $db = DBConnect();
        $phone = Val('phone', 'POST');
        $emsg = Val('emsg', 'POST');
        $pmsg = Val('pmsg', 'POST');
        $dmsg = Val('dmsg', 'POST');
        if (!empty($phone) && !preg_match('/^(\d{11})$/', $phone)) {
            ShowError('手机格式不正确', URL_ROOT . '/index.php?do=user&act=seting', '重新填写');//手机验证
        }
        if ($emsg == 'on') {
            $emsg = '1';
        } else {
            $emsg = '0';
        }
        if ($pmsg == 'on') {
            $pmsg = '1';
        } else {
            $pmsg = '0';
        }
        if ($dmsg == 'on') {
            $dmsg = '1';
        } else {
            $dmsg = '0';
        }
        $db->Execute("UPDATE " . Tb('user') . " SET phone='$phone',message='$emsg|$pmsg|$dmsg' WHERE id='{$user->userId}'");
        ShowSuccess('修改成功', URL_ROOT . '/index.php?do=user&act=seting');
        exit;
        break;
    default:
        break;
}
?>
